Method and system for predicting traffic conditions

ABSTRACT

A method and a system for predicting traffic conditions of a geographical area are provided. Position information, received from devices of corresponding vehicles that are traversing between road segments of a road network including at least first and second road segments, is located on a directed graph of the road network. Further, first and second times are determined based on the located position information on the directed graph. A traffic time of the first road segment is determined based on an average of time differences of the first and second times of each of the one or more first vehicles after filtering out a time period between the first and second times. The traffic conditions of the road network are predicted based on the determined traffic time of each of the road segments.

CROSS-RELATED APPLICATIONS

This application is a continuation application from U.S. applicationSer. No. 15/916,739, filed Mar. 9, 2018, which claims priority of IndianApplication Serial No. 201741047157, filed Dec. 29, 2017, the contentsof which are incorporated herein by reference.

FIELD

The present invention relates generally to the field of cartography andnavigation systems, and more particularly, to a method and a system forpredicting traffic conditions of a geographical area.

BACKGROUND

With improvements in lifestyle of individuals, demand for private andpublic means of transportations, such as cars, bikes, buses, and thelike, has been continuously increasing. In every society, there areindividuals, for example, the individuals who can afford the privatemeans of transportations and the individuals who cannot afford theprivate means of transportation. The former individuals prefer theirprivate means of transportation for traversing between source anddestination locations. However, the latter individuals rely on thepublic means of transportations for traversing between the source anddestination locations.

s the demand for the private and public means of transportation iscontinuously increasing, number of vehicles traversing along roads of ageographical area to meet the increasing demand has also increased. Eachroad has a limited capacity and due to the increase in the number ofvehicles, traffic along each road has continued to increase at a ratethat is greater than increase in the road capacity. Due to thecontinuous increase in the traffic along the roads, the individuals areoften delayed in reaching their destinations, which may cause adverseeffects on their well-being, business operations, government operations,or the like. Accordingly, appropriate actions have been taken to reducethe increasing traffic, for example, by obtaining and providing currenttraffic conditions to the individuals, which helps the individualsmanage their travel better, thereby reducing the traffic on the roads.The current traffic conditions may be obtained by means of trafficsensors associated with the roads. Further, the current trafficconditions may be obtained by means of global positioning system (GPS)based devices associated with the vehicles that are traversing along theroads. Although such current traffic conditions provide some sort ofconvenience to the individuals in some situations, a number of problemsexist with such current traffic conditions. For example, the currenttraffic conditions are predicted based on a consistent traffic signaltime of traffic signals along the roads. However, the traffic signalsmay not operate with consistent traffic signal time. Therefore, suchcurrent traffic conditions may not be reliable due to one or morelimitations, such as different star-stop time at different trafficsignals, different traffic signal timings in different hours of a day,different time interval for different possible transitions at thetraffic signals (such as a right turn signal is open for a longer periodof time than a straight transition), manual control of the trafficsignals, free left or right transition scenarios which are differentfrom other turn transitions at the same traffic signal, and the like.Hence, such current traffic conditions are typically inaccurate, and areof little practical use for travel planning by the individuals.

In light of the foregoing, there exists a need for a technical and morereliable solution that solves the above-mentioned problems and predictsthe current traffic conditions of the roads in the geographical areathat improves routing of various types of vehicles along the roads,thereby, improving travel experience of the individuals during theirrides.

SUMMARY

Various embodiments of the present invention provide a method and asystem for predicting traffic conditions of a geographical area areprovided. The system includes circuitry that generates a directed graphof a road network of the geographical area based on static dataassociated with the road network. Position information is received fromone or more devices of one or more first vehicles that are traversingbetween a plurality of road segments of the road network including atleast first and second road segments. The position information isreceived after a regular interval of time. A traffic signal isassociated with at least one of the first and second road segments. Thereceived position information is located on the generated directedgraph. Further, first and second times for each of the one or more firstvehicles are determined based on the located position information on thegenerated directed graph. The first time of a first vehicle from the oneor more first vehicles is a first entry time of the first vehicle intothe first road segment. The second time of the first vehicle is a secondentry time of the first vehicle into the second road segment. For eachof the one or more first vehicles, a time difference between the firstand second times is determined. Further, a time period associated withone or more vehicle-related services of each of the one or more firstvehicles along the first road segment including the traffic signal isfiltered out from the time difference to obtain a filtered timedifference for each of the one or more first vehicles. A traffic time ofthe first road segment including the traffic signal is determined basedon an average of filtered time differences associated with each of theone or more first vehicles. The traffic conditions of the road networkof the geographical area are predicted based on the determined traffictime of each of the plurality of road segments.

In an embodiment, the static data includes at least one of latitudeinformation, longitude information, elevation values for start, end, andmiddle points of the plurality of road segments, or turn and speedrestrictions of the plurality of road segments. Further, the generateddirected graph includes a plurality of nodes including at least firstand second nodes that indicate at least the first and second roadsegments, respectively. The generated directed graph further includesone or more directed edges including at least one directed edge betweenthe first and second nodes that indicates a transition between the firstand second nodes. Further, in an embodiment, the generated directedgraph is updated in a defined preferential order of availability of atleast one of current traffic data, historical traffic data, clusterlevel traffic data, or default traffic data.

The current traffic data is generated based on the position informationthat is received after the regular interval of time from the one or moredevices of the one or more first vehicles. The historical traffic datais generated based on day-wise, holiday, weekday, or weekend trafficdata. The historical traffic data may further be generated based on atleast one of the day-wise, holiday, weekday, or weekend data within thetime bucket and one or more neighboring time buckets. The historicaltraffic data may be selected based on a second defined preferentialorder. The selection of the generated historical traffic data is furtherdecayed to remove staleness from the generated historical traffic data.In an embodiment, the generated historical traffic data is decayed basedon a decay factor and a ranged function. The ranged function is acombination of a volume of the generated historical traffic data and avolume of the current traffic data. Further, a range of the decay factoris between 0 and 1. The cluster level traffic data is generated by meansof a clustering technique that establishes equivalence between similarroad segments of the plurality of road segments based on one or morefeatures associated with at least one of the geographical area, a roadtype, the elevation values for start, end, and middle points of theplurality of road segments, or historical traffic conditions. Thedefault traffic data is generated based on default speeds associatedwith the plurality of road segments.

Further, in an embodiment, the circuitry determines a travel time for asecond vehicle to travel along one or more routes of the road networkincluding the plurality of road segments based on the predicted trafficconditions. The travel time is determined in response to a bookingrequest received from a passenger device of a passenger to travelbetween source and destination locations. The one or more routes areassociated with the source and destination locations of the bookingrequest. Further, the second vehicle is routed along one of the one ormore routes based on the determined travel time for the second vehicleand a travel preference of at least one of the passenger or a transportservice provider providing the second vehicle for the travel. The travelpreference is associated with at least one of cost or time constraintsof the travel. The travel preference of the passenger is determinedbased on at least one of historical travel data of the passenger orreal-time travel data received from the passenger device before routingthe second vehicle. The travel preference of the transport serviceprovider is determined based on a defined setting associated with atleast one of a route preference, a passenger value, or a grossmerchandise value (GMV).

Thus, in accordance with various embodiments of the present invention,the method and the system are provided for predicting the trafficconditions along the road segments of the geographical area, and thus,the problems due to irregular start-stop patterns associated with one ormore traffic signals in the road network are minimized. Further, basedon the predicted traffic conditions, the travel time and farecorresponding to the booking request are determined that can meet theexpected preferences of at least one of the passenger or the transportservice provider, enabling optimal routing of the second vehicle.Further, the optimal routing of the second vehicle ensures safety of thepassenger and a driver of the second vehicle allocated to the passenger.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate the various embodiments of systems,methods, and other aspects of the invention. It will be apparent to aperson skilled in the art that the illustrated element boundaries (e.g.,boxes, groups of boxes, or other shapes) in the figures represent oneexample of the boundaries. In some examples, one element may be designedas multiple elements, or multiple elements may be designed as oneelement. In some examples, an element shown as an internal component ofone element may be implemented as an external component in another, andvice versa.

FIG. 1 is a block diagram that illustrates an environment in which oneor more embodiments of the present invention are practiced;

FIG. 2 is a block diagram that illustrates an application server of theenvironment of FIG. 1, in accordance with an embodiment of the presentinvention;

FIG. 3A illustrates a road network of a geographical area, in accordancewith an embodiment of the present invention;

FIG. 3B illustrates a directed graph of the road network of FIG. 3A, inaccordance with an embodiment of the present invention;

FIG. 3C illustrates transitions of vehicles from a first node to asecond node of the directed graph of FIG. 3B for predicting trafficconditions, in accordance with an embodiment of the present invention;

FIG. 4 is a flow chart that illustrates a method for generating adirected graph of a road network of a geographical area, in accordancewith an embodiment of the present invention;

FIG. 5 is a flow chart that illustrates a method for predicting trafficconditions of a geographical area, in accordance with an embodiment ofthe present invention;

FIG. 6 is a flow chart that illustrates a method for routing a vehicle,in accordance with an embodiment of the present invention; and

FIG. 7 is a block diagram that illustrates a computer system for routinga vehicle in a geographical area using predicted traffic conditions ofthe geographical area, in accordance with an embodiment of the presentinvention.

Further areas of applicability of the present invention will becomeapparent from the detailed description provided hereinafter. It shouldbe understood that the detailed description of exemplary embodiments isintended for illustration purposes only and is, therefore, not intendedto necessarily limit the scope of the invention.

DETAILED DESCRIPTION

As used in the specification and claims, the singular forms “a”, “an”and “the” may also include plural references. For example, the term “anarticle” may include a plurality of articles. Those with ordinary skillin the art will appreciate that the elements in the figures areillustrated for simplicity and clarity and are not necessarily drawn toscale. For example, the dimensions of some of the elements in thefigures may be exaggerated, relative to other elements, in order toimprove the understanding of the present invention. There may beadditional components described in the foregoing application that arenot depicted on one of the described drawings. In the event such acomponent is described, but not depicted in a drawing, the absence ofsuch a drawing should not be considered as an omission of such designfrom the specification.

Before describing the present invention in detail, it should be observedthat the present invention utilizes a combination of system components,which constitutes systems and methods for predicting traffic conditionsof a geographical area, and optimizing routing of vehicles in accordancewith the predicted traffic conditions and preferences of at least one ofpassengers or a transport service provider. Accordingly, the componentsand the method steps have been represented, showing only specificdetails that are pertinent for an understanding of the present inventionso as not to obscure the disclosure with details that will be readilyapparent to those with ordinary skill in the art having the benefit ofthe description herein. As required, detailed embodiments of the presentinvention are disclosed herein; however, it is to be understood that thedisclosed embodiments are merely exemplary of the invention, which canbe embodied in various forms. Therefore, specific structural andfunctional details disclosed herein are not to be interpreted aslimiting, but merely as a basis for the claims and as a representativebasis for teaching one skilled in the art to variously employ thepresent invention in virtually any appropriately detailed structure.Further, the terms and phrases used herein are not intended to belimiting but rather to provide an understandable description of theinvention.

References to “one embodiment”, “an embodiment”, “another embodiment”,“yet another embodiment”, “one example”, “an example”, “anotherexample”, “yet another example”, and so on, indicate that theembodiment(s) or example(s) so described may include a particularfeature, structure, characteristic, property, element, or limitation,but that not every embodiment or example necessarily includes thatparticular feature, structure, characteristic, property, element orlimitation. Furthermore, repeated use of the phrase “in an embodiment”does not necessarily refer to the same embodiment.

Traffic on a road is typically a combination of one or more groups ofroad users, such as pedestrians, vehicles, and other conveyances, thatare moving (or halted), either individually or together, while using theroad for traveling. Generally, the road includes road segments that areseparated by traffic signals to control the movement of road users alongthe road. Hereinafter, various methods of predicting traffic conditions,and routing the vehicles to transport passengers by a vehicle transitsystem have been described that will become apparent to a person havingordinary skill in the relevant art.

Referring now to FIG. 1, a block diagram that illustrates an environment100 in which various embodiments of the present invention are practiced.The environment 100 includes a plurality of vehicles 102 including oneor more first vehicles 104 and one or more second vehicles 106, apassenger device 108, an application server 110, and a database server112 that communicate with each other by way of a communication network114. Examples of the communication network 114 include, but are notlimited to, wireless fidelity (Wi-Fi) network, a light fidelity (Li-Fi)network, a satellite network, the internet, a mobile network such as acellular data network, a high-speed packet access (HSPA) network, or anycombinations thereof. In an exemplary embodiment, the database server112 may include one or more separate data storage servers, such as ahistorical traffic data storage (HTDS) server 112 a, a road network datastorage (RNDS) server 112 b, and a current traffic data storage (CTDS)server 112 c.

The plurality of vehicles 102 (hereinafter “vehicles 102”) are means oftransport that are deployed by a vehicle transit system, such as atransport service provider, to provide vehicle services to passengers.For example, a vehicle of the vehicles 102 is an automobile, a bus, acar, a motor bike, a truck, or the like. In an embodiment, the vehicles102 may be traversing along road segments of a road network associatedwith a geographical area. For example, the vehicles 102 may betraversing along the road segments to transport the passengers to theirdestination locations. In another example, the vehicles 102 may betraversing along the road segments to pick the passengers from theirpick-up locations. In another example, the vehicles 102 may betraversing along the road segments to obtain new allocations. Thevehicles 102 include the one or more first vehicles 104 (hereinafter“vehicles 104”) and the one or more second vehicles 106 (hereinafter“vehicles 106”). Vehicles 104 a and 106 a of the vehicles 104 and 106,respectively, may include devices 104 b and 106 b, respectively. Thedevices 104 b and 106 b are computing devices that are utilized bydrivers of the vehicles 104 a and 106 a, respectively, to perform one ormore activities. The drivers may utilize their respective devices 104 band 106 b to view a new booking request by means of an applicationinstalled on their respective devices 104 b and 106 b, respectively. Thedrivers may further utilize their respective devices 104 b and 106 b toaccept or reject the new booking request. The drivers may furtherutilize the devices 104 b and 106 b to view one or more routes betweensource and destination locations that are associated with the acceptedbooking request. Further, in an embodiment, the devices 104 b and 106 bmay include one or more position tracking devices (e.g., GPS sensors)for detecting position information of the devices 104 b and 106 b,respectively, and transmit the detected position information to theapplication server 110 over the communication network 114.

In an exemplary embodiment, each of the devices 104 b and 106 b may be avehicle head unit. In another exemplary embodiment, the devices 104 band 106 b may be communication devices, such as smartphones, personaldigital assistants (PDAs), tablets, or any other portable communicationdevices, that are placed inside the vehicles 104 a and 106 a,respectively. In an event when the devices 104 b and 106 b are placedinside the vehicles 104 a and 106 a, respectively, the detected positioninformation of the devices 104 b and 106 b may be utilized to determineposition information of the vehicles 104 a and 106 a, respectively.However, a person having ordinary skill in the art will understand thatthe scope of the present invention is not limited to the determinationof the position information of the vehicles 104 a and 106 a based on thedetected position information of the devices 104 b and 106 b. The one ormore position tracking devices may be embedded inside the vehicle 104 aor 106 a for detecting and transmitting the position information of thevehicle 104 a or 106 a to the application server 110 over thecommunication network 114.

The passenger device 108 is a computing device that is utilized by apassenger to perform one or more activities, including transmitting abooking request by means of a service application installed on thepassenger device 108 to the application server 110. The booking requestmay be a ride request to travel between various locations includingsource and destination locations. To schedule the ride, the passengerprovides details of the booking request, such as the source location,the destination location, a vehicle type, a pick-up time, a travel timeconstraint, a travel cost constraint, or the like, by means of theinstalled service application. In response to the transmitted bookingrequest, the passenger device 108 receives the allocation of a vehiclefrom the vehicles 102, for example, the vehicle 106 a that is availablefor the ride, from the application server 110. The passenger views theallocation details on the passenger device 108 by means of the installedservice application, and provides an input, either to confirm or rejectthe allocation by the application server 110. Examples of the passengerdevice 108 include, but are not limited to, a personal computer, alaptop, a smartphone, a tablet computer, and the like.

The application server 110 is a computing device, a software framework,or a combination thereof, that may provide a generalized approach tocreate the application server implementation. In an embodiment, variousoperations of the application server 110 may be dedicated to executionof procedures, such as, but are not limited to, programs, routines, orscripts stored in one or more memories for supporting its appliedapplications. In an embodiment, the application server 110 generates adirected graph of the road network of the geographical area based onstatic data associated with the road network. Further, the applicationserver 110 locates the position information received from devices (suchas the device 104 b) of the vehicles 104 (e.g., the vehicle 104 a) onthe generated directed graph. The vehicles 104 are one or more vehiclesof the vehicles 102 that are traversing between the road segmentsincluding at least first and second road segments. Further, in anembodiment, for each of the vehicles 104, the application server 110determines first and second times based on the located positioninformation on the generated directed graph. The first time for thevehicle 104 a is a time instance of an entry of the vehicle 104 a intothe first road segment. The second time of the vehicle 104 a is a timeinstance of an entry of the vehicle 104 a into the second road segment.

Further, in an embodiment, the application server 110 determines atraffic time of the first road segment including at least a trafficsignal. The traffic time is determined based on an average of filteredtime differences associated with each of the vehicles 104. A timedifference for the vehicle 104 a is determined based on a differencebetween the first and second times of the vehicle 104 a. Further, a timeperiod associated with one or more vehicle-related services (such as aservice related to refueling, repairs, mechanical adjustments, penaltydue to traffic breakdown, or the like) of the vehicle 104 a along thefirst road segment including the traffic signal is filtered out from thetime difference to obtain a filtered time difference for the vehicle 104a. Similarly, the filtered time difference for each of remainingvehicles from the vehicles 104 may be determined. Similarly, theapplication server 110 may determine the traffic time for each ofremaining road segments from the road segments. Based on the determinedtraffic time for each of the road segments, the application server 110predicts the traffic conditions of the road network of the geographicalarea.

Further, in an embodiment, the application server 110, in response tothe booking request received from the passenger device 108, selects oneof the vehicles 102, for example, the vehicle 106 a that is availablefor the allocation. The application server 110 determines a travel timefor the vehicle 106 a to travel along each of the one or more routes ofthe road network including the road segments. The travel time isdetermined based on the predicted traffic conditions in response to thebooking request by the passenger. Based on the determined travel timeand a travel preference of at least one of the passenger or thetransport service provider, the application server 110 routes thevehicle 106 a along one of the one or more routes. The travel preferenceof the passenger is associated with at least one of the time or costconstraints of the travel. The travel preference of the transportservice provider is associated with at least one of a route constraint,a passenger value constraint, or a gross merchandise value (GMV)constraint. Examples of the application server 110 include, but are notlimited to, a personal computer, a laptop, or a network of computersystems. The application server 110 may be realized through variousweb-based technologies such as, but not limited to, a Javaweb-framework, a .NET framework, a PHP framework, or any otherweb-application framework. The various operations of the applicationserver 110 have been described in detail in conjunction with FIGS. 2,3A-3C, and 4-6.

The database server 112 is a data management and storage server thatmanages and stores passenger information of the passengers (such as thepassenger who has requested for the ride) and driver information of thedrivers associated with the vehicles 102. The database server 112includes a processor (not shown) and a memory (not shown) for managingand storing the passenger and driver information (e.g., an identity, acontact number, a travel preference, or the like). The processor furthermanages and stores historical travel data of the passenger and thedrivers in the memory. The historical travel data of the passengerincludes historical travel requests and cancellations by the passenger,historical feedback of the passenger, or the like. The historical traveldata of the drivers includes historical travel supplies andcancellations by the drivers, historical feedback of the drivers, or thelike. In an embodiment, the processor further manages and storeshistorical traffic data, road network data, and current traffic data inthe memory.

In another embodiment, the processor stores the historical traffic data,the road network data, and the current traffic data in a separatememory, such as the HTDS server 112 a, RNDS server 112 b, and CTDSserver 112 c, respectively. The historical traffic data includesday-wise, holiday, weekday, or weekend traffic data of the road networkthat had been obtained from traffic patterns captured by the devices ofthe vehicles 102 in the past. The road network data includes the staticdata associated with the road network, including latitude information,longitude information, elevation values for start, end, and middlepoints of the road segments, or a combination thereof. The static datafurther includes traffic-related information, such as one-way, two-ways,turn and speed restrictions associated with each of the road segments.The current traffic data includes real-time traffic data generated bythe application server 110 based on the traffic patterns captured in areal-time. The processor further manages and stores cluster leveltraffic data or default traffic data generated by the application server110 in the memory. Further, in an embodiment, the database server 112may receive a query from the application server 110 over thecommunication network 114, to retrieve at least one of the passenger ordriver information, historical travel data of the passenger or thedriver, the historical traffic data, the road network data, the currenttraffic data, the cluster level traffic data, the default traffic dataor the like. The database server 112, in response to the received queryfrom the application server 110, retrieves and transmits the requesteddata to the application server 110 over the communication network 114.Examples of the database server 112 include, but are not limited to, apersonal computer, a laptop, or a network of computer systems.

Referring now to FIG. 2, a block diagram that illustrates theapplication server 110 of the environment 100 of FIG. 1 is shown, inaccordance with an embodiment of the present invention. The applicationserver 110 includes circuitry such as a processor 202, a graph generator204, a traffic predictor 206, a routing engine 208, a transceiver 210, amemory 212, and an input/output (I/O) port 214 that communicate witheach other by way of a communication bus 216.

The processor 202 includes suitable logic, circuitry, and/or interfacesthat are operable to execute one or more instructions stored in thememory 212 to perform one or more operations. For example, the processor202 determines an availability status of each of the vehicles 102, andstores in the memory 212. The availability status indicates whether oneor more of the vehicles 102 are occupied with current trips or areavailable for new trip requests. The processor 202 further receives theposition information from the devices (e.g., the devices 104 b and 106b) of the vehicles 102 (e.g., the vehicles 104 a and 106 a,respectively) by way of the transceiver 210 over the communicationnetwork 114, and determines the position information of the vehicles 102and stores in the memory 212. The processor 202 receives the bookingrequest from the passenger device 108 by way of the transceiver 210 overthe communication network 114. The processor 202 processes the receivedbooking request to determine the booking details provided by thepassenger. Based on the processed booking request and the currentvehicle status of the vehicles 102, the processor 202 selects onevehicle (e.g., the vehicle 106 a) from the vehicles 102, and allocatesthe vehicle 106 a to the passenger. The vehicle 106 a is allocated tothe passenger in response to an acceptance message received from thedevice 106 b that has been provided by the driver of the vehicle 106 a.

Further, the processor 202 determines the travel time for the vehicle106 a to travel along each of the one or more routes of the road networkbased on the traffic conditions predicted by the traffic predictor 206.Each of the one or more routes are associated with the source anddestination locations of the booking request provided by the passenger.Further, for each of the one or more routes, the processor 202determines a travel cost based on at least one of the determined traveltime, the predicted traffic conditions, or a travel distance associatedwith each of the one or more routes. Further, the processor 202 mayrender a user interface on a display of the passenger device 108. Theuser interface presents at least one of the determined travel time ortravel cost of the one or more routes corresponding to the bookingrequest. The user interface may further present vehicle and driverinformation of the vehicle 106 a. In response to the rendered userinterface, the processor 202 may receive a confirmation message or arejection message for the allocated vehicle 106 a from the passengerdevice 108 by way of the transceiver 210 over the communication network114. In an event of the confirmation message provided by the passenger,the processor 202 allocates the vehicle 106 a to the passenger. Examplesof the processor 202 include an application-specific integrated circuit(ASIC) processor, a reduced instruction set computing (RISC) processor,a complex instruction set computing (CISC) processor, afield-programmable gate array (FPGA), or the like.

The graph generator 204 includes suitable logic, circuitry, and/orinterfaces that are operable to execute one or more instructions storedin the memory 212 to perform one or more operations. For example, thegraph generator 204 generates the directed graph of the road network ofthe geographical area based on the static data of the road segments ofthe road network. The generated directed graph includes nodes includingat least first and second nodes that indicate at least the first andsecond road segments, respectively. The generated directed graph furtherincludes directed edges including at least one directed edge between thefirst and second nodes that indicates a transition between the first andsecond road segments. The graph generator 204 further locates theposition information received from the devices (e.g., the device 104 b)of the vehicles 104 (e.g., the vehicle 104 a) on the generated directedgraph. The graph generator 204 further updates the generated directedgraph based on at least one of the current traffic data, the historicaltraffic data, the cluster level traffic data, or the default trafficdata. The generated directed graph is updated in a first definedpreferential order of the availability of the current traffic data, thehistorical traffic data, the cluster level traffic data, or the defaulttraffic data. The graph generator 204 may be implemented by means of oneor more processors, such as, but are not limited to, an ASIC processor,a RISC processor, a CISC processor, a FPGA, or a combination thereof.

The traffic predictor 206 includes suitable logic, circuitry, and/orinterfaces that are operable to execute one or more instructions storedin the memory 212 to perform one or more operations. For example, thetraffic predictor 206 determines the first and second times for each ofthe vehicles 104 based on the located position information of thevehicles 104 on the generated directed graph. In an exemplaryembodiment, the first and second times for the vehicle 104 a isdetermined based on the first and second entry time of the vehicle 104 ainto the first and second road segments, respectively. The first andsecond entry time are obtained from the generated directed graph onwhich the position information of the vehicle 104 a has been located bythe graph generator 204. The traffic predictor 206 further determinesthe time difference for each of the vehicles 104 based on thecorresponding first and second times. Thereafter, for each of thevehicles 104, the time period associated with the one or morevehicle-related services of each of the vehicles 104 is determined. Inan exemplary embodiment, for the vehicle 104 a, the time periodassociated with a vehicle-related service (e.g., refueling at a petrolstation along the first road segment) may be determined based on startand stop time associated with the vehicle-related service that isprovided by the device 104 b of the vehicle 104 a. Further, for each ofthe vehicles 104, the time period is filtered out from the correspondingtime difference to obtain the filtered time difference. The trafficpredictor 206 determines the traffic time of the first road segmentincluding the traffic signal based on the average of the filtered timedifferences associated with each of the vehicles 104. Similarly, thetraffic predictor 206 determines the traffic time of each of theremaining road segments. Further, the traffic predictor 206 predicts thetraffic conditions of the road network based on the determined traffictime of each of the road segments. The traffic predictor 206 may beimplemented by means of one or more processors, such as, but are notlimited to, an ASIC processor, a RISC processor, a CISC processor, aFPGA, or a combination thereof.

The routing engine 208 includes suitable logic, circuitry, and/orinterfaces that are operable to execute one or more instructions storedin the memory 212 to perform one or more operations. For example, therouting engine 208 selects a route from the one or more routes based onthe determined travel time, the determined travel cost, or the travelpreferences of the passenger or the transport service provider. Further,the routing engine 208 routes the vehicle 106 a along the selected routeto transport the passenger from the source location to the destinationlocation of the booking request. The routing engine 208 may beimplemented by means of one or more processors, such as, but are notlimited to, an ASIC processor, a RISC processor, a CISC processor, aFPGA, or a combination thereof.

The transceiver 210 includes suitable logic, circuitry, and/orinterfaces that are operable to transmit (or receive) information to (orfrom) various devices, such as the devices of vehicles 102, thepassenger device 108, or the database server 112 over the communicationnetwork 114. For example, the transceiver 210 receives the positioninformation from the devices of the vehicles 102, and stores in thememory 212. The transceiver 210 further receives the booking requestfrom the passenger device 108, and stores in the memory 212. Thetransceiver 210 transmits allocation information of the vehicle 106 a toat least one of the device 106 b or the passenger device 108. Thetransceiver 210 further transmits routing information of the vehicle 106a to at least one of the device 106 b or the passenger device 108.Examples of the transceiver 210 include, but are not limited to, anantenna, a radio frequency transceiver, a wireless transceiver, aBluetooth transceiver, and the like. The transceiver 210 communicateswith the devices of the vehicles 102, the passenger device 108, thedatabase server 112, or the communication network 114 using variouswired and wireless communication protocols, such as TCP/IP (TransmissionControl Protocol/Internet Protocol), UDP (User Datagram Protocol), 2ndGeneration (2G), 3rd Generation (3G), 4th Generation (4G) communicationprotocols, or any combination thereof.

The memory 212 includes suitable logic, circuitry, and/or interfaces tostore the one or more instruction that are executed by the processor202, the graph generator 204, the traffic predictor 206, the routingengine 208, the transceiver 210, or the I/O port 214 to perform the oneor more operations. The memory 212 further stores the positioninformation, the booking request, the allocation information, therouting information, or the predicted traffic conditions. Examples ofthe memory 212 include, but are not limited to, a random access memory(RAM), a read-only memory (ROM), a programmable ROM (PROM), and anerasable PROM (EPROM).

The I/O port 214 includes suitable logic, circuitry, and/or interfacesthat are operable to execute one or more instructions stored in thememory 212 to perform one or more operations. The I/O port 214 mayinclude various input and output devices that are configured to operateunder the control of the processor 202 by way of the communication bus216. For example, by means of the I/O port 214, an administratorprovides one or more inputs to perform the one or more operations. Forexample, the administrator may define the one or more preferentialorders by means of the I/O port 214. Examples of the input devices mayinclude a universal serial bus (USB) port, an Ethernet port, a real orvirtual keyboard, a mouse, a joystick, a touch screen, a stylus, amicrophone, and the like. Examples of the output devices may include adisplay screen, a speaker, headphones, a universal serial bus (USB)port, an Ethernet port, and the like.

FIG. 3A illustrates the road network, such as an exemplary road network300A, of the geographical area, in accordance with an embodiment of thepresent invention. The exemplary road network 300A includes roadsegments 302-324 and traffic signals 326-332. A unique identifier (ID)is associated with each of the road segments 302-324 and the trafficsignals 326-332. Further, in an embodiment, for each of the roadsegments 302-324, the static data is obtained and stored in the databaseserver 112 or in the memory 212. The static data includes at least oneof the latitude information, the longitude information, and theelevation values for start, end, and middle points of each of the roadsegments 302-324. The static data further includes the traffic-relatedinformation, such as one-way, two-ways, turn and speed restrictionsassociated with each of the road segments 302-324. Further, in anembodiment, each of the traffic signals 326-332 may be associated withoperating information, for example, the traffic signal 326 may beassociated with a start time at which the traffic signal 326 startsoperating, a stop time at which the traffic signal 326 stops operating,or the like. The operating information of the traffic signals 326-332may vary from one location to another location or from one time instanceto another time instance. In an exemplary embodiment, as shown, the roadsegments 302, 306, 308, 312, 316, 320, and 322 are one-way roadsegments, and the road segments 304, 310, 314, 318, and 324 are two-waysroad segments. The traffic signal 326 is located between the roadsegments 302, 304, and 314. The traffic signal 328 is located betweenthe road segments 304-312. The traffic signal 330 is located between theroad segments 314-320. The traffic signal 332 is located between theroad segments 310 and 320-324.

FIG. 3B illustrates the directed graph of the road network, such as anexemplary directed graph 300B of the exemplary road network 300A of FIG.3A, in accordance with an embodiment of the present invention. Theexemplary directed graph 300B is generated by the graph generator 204based on the static data of the exemplary road network 300A. Theexemplary directed graph 300B includes nodes 302 n-324 n that representthe road segments 302-324, respectively, and directed edges 334-394,each of which indicates the transition from one node to another node ofthe nodes 302 n-324 n. In an embodiment, the graph generator 204determines the transition based on the static data of the exemplary roadnetwork 300A. For example, the directed edges 334 and 336 indicatetransitions from the node 302 n to the nodes 304 n and 314 n,respectively. The transition from the node 302 n to the node 304 nindicates that one or more of the vehicles 102 that are traversing alongthe road segment 302 can further traverse along the road segment 304.Similarly, the transition from the node 302 n to the node 314 nindicates that one or more of the vehicles 102 that are traversing alongthe road segment 302 can further traverse along the road segment 314.Similarly, other transitions associated with the nodes 304 n-324 n ofthe exemplary directed graph 300B may be identified, as shown.

FIG. 3C illustrates the transitions of the vehicles 104 from the node302 n to the node 304 n of the exemplary directed graph 300B of FIG. 3Bfor predicting the traffic conditions of the road segment 302 associatedwith the node 302 n, in accordance with an embodiment of the presentinvention. The transitions of the vehicles 104 from the node 302 n tothe node 304 n have been indicated by the directed edge 334. Thedirected edge 334 may include the traffic signal (e.g., the trafficsignal 326). Based on the position information of each of the vehicles104 that are traversing from the node 302 n to the node 304 n, thetraffic predictor 206 determines the first and second times (T1 and T2)for each of the vehicles 104. The traffic predictor 206 furtherdetermines the time differences between the first and second times foreach of the vehicles 104. For example, a first time difference betweenthe first and second times (T1 and T2) of the vehicle 104 a that istraversing from the node 302 n to the node 304 n is given by equation(1):

First time difference (TD1)=T2−T1  (1)

For example, if the vehicle 104 a enters the node 302 n at “10:00:00” AMand enters the node 304 n at “10:20:00” AM, then the first timedifference (TD1) is determined as “20” minutes (=10:20:00-10:00:00).Similarly, the traffic predictor 206 determines the time difference foreach of remaining vehicles of the vehicles 104 that are traversing fromthe node 302 n to the node 304 n. Further, the traffic predictor 206determines the time period associated with the one or morevehicle-related services for each of the vehicles 104. For example, thedriver of the vehicle 104 a stops the vehicle 104 a at a petrol stationalong the node 302 n for refueling the vehicle 104 a. The start and stoptime associated with the refueling transmitted by the device 104 b ofthe vehicle 104 a are “10:05:00” AM and “10:08:00” AM. In such ascenario, a first time period for the vehicle 104 a is determined as“03” minutes (=10:08:00-10:05:00). Similarly, the traffic predictor 206determines the time period for each of the remaining vehicles of thevehicles 104. Further, for each of the vehicles 104, the trafficpredictor 206 determines the filtered time difference by filtering outthe time periods from the corresponding time differences. For example,for the vehicle 104 a, the filtered time difference is determined as“17” minutes (=20 minutes-03 minutes). Similarly, the traffic predictor206 determines the filtered time difference of each of the remainingvehicles of the vehicles 104. Further, the traffic predictor 206determines the traffic time of the node 302 n including the directededge 334 based on the average of the filtered time differencesassociated with each of the vehicles 104 that are traversing from thenode 302 n to the node 304 n. Based on the determined traffic time ofthe node 302 n including the directed edge 334, the traffic predictor206 predicts the traffic conditions of the node 302 n (i.e., the roadsegment 302).

Referring now to FIG. 4, a flow chart 400 that illustrates a method forgenerating the directed graph of the road network of the geographicalarea is shown, in accordance with an embodiment of the presentinvention.

At step 402, the static data of the road network of the geographicalarea is obtained. The graph generator 204 obtains the static data of theroad network from the database server 112 (or from the memory 212) underthe control of the processor 202 over the communication network 114. Thestatic data includes the latitude information, the longitudeinformation, and the elevation values for start, end, and middle pointsof each of the road segments associated with the road network. Thestatic data further includes the traffic-related information, such asone-way, two-ways, turn and speed restriction information associatedwith each of the road segments.

At step 404, the directed graph of the road network is generated. Thegraph generator 204 generates the directed graph of the road networkbased on the static data of the road network. The generated directedgraph includes the nodes (such as the nodes 302 n-324 n of FIG. 3B) thatindicate the road segments of the road network. The generated directedgraph further includes the directed edges (such as the directed edges334-394 of FIG. 3B). Each of the directed edges may indicate thetransition from one node to another node. For example, the directed edge334 indicates the transition from the node 302 n to the node 304 n.Further, each of the directed edges may be associated with the trafficsignals. For example, the directed edge 334 is associated with thetraffic signal 326.

At step 406, the generated directed graph is updated. The graphgenerator 204 updates the generated directed graph based on the currenttraffic data, the historical traffic data, the cluster level trafficdata, or the default traffic data. The generated directed graph isupdated based on the first defined preferential order of theavailability of the current traffic data, the historical traffic data,the cluster level traffic data, and the default traffic data. Forexample, firstly, the graph generator 204 checks for the availability ofthe current traffic data in the database server 112 or in the memory 212under the control of the processor 202. In an event when the currenttraffic data is available, at step 406 a, the graph generator 204updates the generated directed graph based on the current traffic data.The current traffic data may be generated based on the positioninformation received from the devices of the vehicles 104, and is storedin the database server 112 or in the memory 212.

However, it may be possible that in certain time buckets (i.e., timedurations), the current traffic data for the road segments isunavailable. For example, the current traffic data may be unavailabledue to absence of vehicle transitions along the road segments, lostsignals, zero traffic situations (e.g., night time), or the like. Inanother exemplary scenario, the current traffic data may be insufficient(i.e., less than a minimum threshold of the current traffic data) due toinsufficient vehicle transitions (i.e., less than minimum vehicletransitions). In such scenarios, the graph generator 204 checks for theavailability of the historical traffic data in the database server 112or in the memory 212 under the control of the processor 202. In an eventwhen the historical traffic data is available, at step 406 b, the graphgenerator 204 updates the generated directed graph based on thehistorical traffic data. The historical traffic data may be generatedbased on at least one of the day-wise, holiday, weekday, or weekendtraffic data within a time bucket or the day-wise, holiday, weekday, orweekend traffic data within the time bucket and one or more neighboringtime buckets of the time bucket, and is stored in the database server112 or in the memory 212. The time bucket, for example, an hour bucketmay be divided into two or more buckets, for example, of “30” minuteseach. In a scenario when the time bucket is from “10:00:00” AM to“11:00:00” AM, the one or more neighboring time buckets may be at leastone of “09:30:00” AM to “10:00:00” AM or “11:00:00” AM to “11:30:00” AM.

Further, in an embodiment, the historical traffic data includes at leastday-wise historical traffic data, holiday-wise historical traffic data,weekday-wise historical traffic data, or weekend-wise historical trafficdata. In such scenario, the historical traffic data is selected based ona second defined preferential order, in which a first preference isgiven to the day-wise historical traffic data in the time bucket,followed by the day-wise historical traffic data in the time bucket andthe one or more neighboring time buckets, followed by the weekday-wiseor weekend-wise historical traffic data in the time bucket, followed bythe weekday-wise or weekend-wise historical traffic data in the timebucket and the one or more neighboring time buckets, and followed by theholiday-wise historical traffic data in the time bucket that is followedby the holiday-wise historical traffic data in the time bucket and theone or more neighboring time buckets. For example, when the generateddirected graph is being updated for “Monday” in the time bucket“13:00:00” PM to “14:00:00” PM based on the historical traffic data,then the historical traffic data of one or more previous “Mondays” inthe time bucket “13:00:00” PM to “14:00:00” PM and/or the one or moreneighboring time buckets of the time bucket “13:00:00” PM to “14:00:00”PM may be utilized to update the generated directed graph. Further,“Monday” being a weekday, the weekday-wise historical traffic data inthe time bucket “13:00:00” PM to “14:00:00” PM and/or the one or moreneighboring time buckets of the time bucket “13:00:00” PM to “14:00:00”PM may further be utilized to update the generated directed graph. Aperson having ordinary skill in the art will understand that the scopeof the present invention is not limited to the second definedpreferential order, as described above. The second defined preferentialorder may be modified and updated as per the requirement in variousapplications of the vehicle transit system that provides vehicleservices to the passengers.

Further, in an embodiment, the selection of the historical traffic datais decayed to remove staleness from the historical traffic data and toadapt new traffic patterns. The historical traffic data is decayed basedon a decay factor and a ranged function that is a combination of avolume of the historical traffic data and a volume of the currenttraffic data. For example, for the first road segment, a first sum ofhistorical transition time (ΣTransition_Time_History) and a first sum ofhistorical transition counts (ΣTransition_Count_History) are maintainedbased on a historical transition time (i.e., historical filtered timedifferences) and historical transition counts (i.e., a count of thehistorical transition time), respectively, associated with the firstroad segment. Further, a second sum of current transition time(ΣTransition_Time_Current) and a second sum of current transition counts(ΣTransition_Count_Current) are determined based on a current transitiontime (i.e., the filtered time differences) and current transition counts(i.e., a count of the current transition time), respectively, associatedwith the first road segment. For predicting the current trafficconditions of the first road segment, an updated first sum of historicaltransition time (ΣUpdated_Transition_Time_History) and an updated firstsum of historical transition counts (ΣUpdated_Transition_Count_History)are determined by using equations (2) and (3):

ΣUpdated_Transition_Time_History=(ΣTransition_Time_History*Decay_Factor)+ΣTransition_Time_Current  (2)

ΣUpdated_Transition_Count_History=(ΣTransition_Count_History*Decay_Factor)+ΣTransition_Count_Current  (3)

Thus, for the first road segment, an updated average of the transitiontime (Updated_Transition_time_Average) is determined by using equation(4):

Updated_Transition_time_Average=(ΣUpdated_Transition_Time_History)/(ΣUpdated_Transition_Count_History)  (4)

wherein, the decay factor (Decay_Factor) is determined using equation(5):

Decay_Factor=b0+f(Volume_History,Volume_Current)  (5)

wherein,b0 is a decay control factor in a range of (0, 1);Volume_History is a volume of the historical traffic data;Volume_Current is a volume of the current traffic data;f(Volume_History, Volume_Current) is a ranged bound continuous functionranging from [0, 1−b0]; andfunction f( ) controls the decay rate based on volumes in current andhistorical time windows.

In an exemplary embodiment, when the volume of the current traffic datais high (in comparison to the volume of the historical traffic data),then a value of the function f( ) may tend towards “0”. In anotherexemplary embodiment, when the volume of the current traffic data is low(in comparison to the volume of the historical traffic data), then thevalue of the function f( ) may tend towards “1−b0”. For example, thefunction f(Volume_History, Volume_Current) is given by equation (6):

f(Volume_History,Volume_Current)=0, if Volume_Current>Volume_History,

else,

f(Volume_History,Volume_Current)=Min{1−b0,|log(Volume_Current/Volume_History)|}  (6)

Further, in an embodiment, at step 406 c, the generated directed graphmay be updated based on the cluster level traffic data. The clusterlevel traffic data is generated by means of a clustering technique thatestablishes equivalence between similar road segments of based on one ormore features associated with at least one of the geographical area, theroad type, the elevation values for start, end, and middle points of theroad segments, or the historical traffic conditions. The cluster leveltraffic data is utilized to predict the current traffic data due tomissing data in the current traffic data. The cluster level traffic datais further utilized to predict traffic trends for one or more upcomingtime buckets by analyzing the traffic data of one or more previous timebuckets. Time series forecasting techniques may be utilized for suchpredictions. Further, in an embodiment, at step 406 d, the generateddirected graph may be updated based on the default traffic data. Thedefault traffic data is generated based on default speeds associatedwith the road segments.

Referring now to FIG. 5, a flow chart 500 that illustrates a method forpredicting the traffic conditions of the geographical area is shown, inaccordance with an embodiment of the present invention.

At step 502, the position information from the devices of the vehicles104 is received. The processor 202 receives the position informationfrom the devices of the vehicles 104 that are traversing between theroad segments including at least the first and second road segments, andstores in the memory 212. The received position information may indicatethe position of the vehicles 104 along the road segments at one or moretime instances. In an embodiment, at least one of the first and secondroad segments (e.g., the road segments 302 and 304 of FIG. 3A) may beassociated with the traffic signal, such as the traffic signal 326. Inanother embodiment, the first and second road segments may be connectedwith each other by means of a free left, right, forward, or backwardturn, and may not be associated with the traffic signal.

At step 504, the received position information is located on thegenerated directed graph. The graph generator 204 locates the receivedposition information on the generated directed graph for each of thevehicles 104.

At step 506, the first and second times are determined based on thelocated position information on the generated directed graph. Thetraffic predictor 206 determines the first and second timescorresponding to each of the vehicles 104 based on the located positioninformation of the vehicles 104 on the generated directed graph.

At step 508, the time difference between the first and second times isdetermined. The traffic predictor 206 determines the time difference foreach of the vehicles 104 based on the first and second times associatedwith each of the corresponding vehicles 104. The time difference foreach of the vehicles 104 may be determined by means of the equation (1),as described above in conjunction with FIG. 3C. Further, for each of thevehicles 104 a, the traffic predictor 206 determines the time periodassociated with the one or more vehicle-related services of each of thevehicles 104 along the first road segment. Thereafter, for each of thevehicles 104, the traffic predictor 206 determines the filtered timedifference by filtering out the time period from the corresponding timedifference of each of the vehicles 104 a.

At step 510, the average of the filtered time differences is determined.The traffic predictor 206 determines the average of the filtered timedifferences associated with each of the vehicles 104 along each of theroad segments.

At step 512, the traffic time of each of the road segments isdetermined. The traffic predictor 206 determines the traffic time ofeach of the road segments based on the determined average of thefiltered time differences associated with each of the road segments. Forexample, the traffic time of the first road segment (with or without thetraffic signal) may be determined based on the average of the filteredtime differences of the first and second times of each of the vehicles104 that are traversing from the first road segment to remaining roadsegments of the road segments.

At step 514, the traffic conditions of the road network are predicted.The traffic predictor 206 predicts the traffic conditions of the roadnetwork including the road segments based on the determined traffic timeof each of the road segments. Similarly, the traffic conditions of theroad network may be predicted based on the position information receivedfrom devices (e.g., the device 106 b) of the vehicles 106 (e.g., thevehicle 106 a).

Referring now to FIG. 6, a flow chart 400 that illustrates a method forrouting the vehicle 106 a is shown, in accordance with an embodiment ofthe present invention.

At step 602, the booking request is received from the passenger device108. The processor 202 receives the booking request from the passengerdevice 108 by way of the transceiver 210 over the communication network114, and stores in the memory 212. The booking request of the passengeris the ride request to travel between the source and destinationlocations provided by the passenger. The booking request may furtherinclude one or more preferences of the passenger, for example, thevehicle type, the pick-up time, the travel time constraint, the travelcost constraint, or the like. In another embodiment, the one or morepreferences of the passenger may be determined based on the historicaltravel data of the passenger.

At step 604, the vehicle 106 a is selected from the vehicles 106. Theprocessor 202 processes the received booking request and checks thevehicle status of the vehicles 106 to determine the availability of thevehicles 106. Based on the determined availability and the currentposition information of the vehicles 106, the processor 202 selects thevehicle 106 a from the vehicles 106 for the allocation to the passenger.In another embodiment, the processor 202 may select one of the vehicles104 (e.g., the vehicle 104 a) that is available for the ride in responseto the received booking request.

At step 606, the one or more routes are identified between the sourceand destination locations. The routing engine 208 identifies the one ormore routes between the source and destination locations. At step 608,the travel time for the vehicle 106 a to travel along each of the one ormore routes is determined. The routing engine 208 determines the traveltime for the vehicle 106 a to travel along each of the one or moreroutes based on the predicted traffic conditions along each of the oneor more routes.

At step 610, the travel cost for the vehicle 106 a to travel along eachof the one or more routes is determined. The routing engine 208determines the travel cost for the vehicle 106 a to travel along each ofthe one or more routes based on at least one of the travel time, thetravel distance, or the predicted traffic conditions associated witheach of the one or more routes.

At step 612, one route is selected from the one or more routes. Therouting engine 208 selects the one route from the one or more routesbased on at least one of security parameters of the passenger, thetravel preferences of at least one of the passenger or the transportservice provider, the travel time or cost of the one or more routes, anestimated time of arrival (ETA) at the source location for the pick-up,an ETA at the destination location for the drop-off, or a combinationthereof. In an embodiment, security of the passenger is the mostimportant responsibility of the transport service provider, andtherefore, routing the vehicle 106 a via a safer route optimizes thesecurity of the passenger. Therefore, the one route may be selected formthe one or more routes that optimizes the security of the passenger. Forexample, the one route may be selected form the one or more routes suchthat other vehicles (from the vehicles 104 and 106) are currentlytraversing along the selected route. The number of such other vehiclesmay be determined based on the real-time position information (orhistorical position information in the same time bucket) of the vehicles104 and 106. In another embodiment, the one route may be selected formthe one or more routes that has optimal network bandwidth such that themovement of the vehicles 104 and 106 can be effectively tracked. Inanother embodiment, the one route may be selected form the one or moreroutes that is in a vicinity of a police station or other professionalsecurity agencies.

Further, in an embodiment, the one route may be selected form the one ormore routes that may have a higher number of shared-ride demands withrespect to remaining routes of the one or more routes. The number ofshared-ride demands for the road segments of the route may be determinedbased on the historical travel data of the passengers that areassociated with the road segments. Further, the shared-ride demands maybe associated with the same destination location as of the passenger orone or more other destination locations that are in the same directionof the destination location of the passenger. Further, each of the roadsegments of the route are provided with a preference. While providingthe preference to each of the road segments, source-destination-timelevel demand metrics are analyzed, and thus, for a road segment from theroad segments, a time of reaching the road segment from the sourcelocation of the passenger is adjusted by an expected time. Further, inan embodiment, the route with the higher number of the shared-ridedemands may be constrained based on a permissible deviation in adrop-off time of the passenger to the destination location.

Further, in an embodiment, the one route may be selected form the one ormore routes based on the travel preferences of at least one of thepassenger or the transport service provider. The travel preferences ofthe passenger are associated with at least one of time or costconstraints of the travel. The travel preferences of the passenger maybe determined based on the historical travel data of the passenger orreal-time travel data (i.e., the booking request) received from thepassenger device 108 before the routing of the vehicle 106 a. The travelpreference of the transport service provider may be determined based ondefined settings associated with at least one of the route preference(as described above). The defined settings may further be associatedwith the passenger value of the passenger. For example, based on thehistorical travel data of the passenger, the passenger value of thepassenger (in terms of gross revenue earned by the transport serviceprovider) may be determined. Based on a deviation of the passenger valuefrom a defined threshold, the one route may be selected from the one ormore routes. The defined settings may further be associated with the GMVof the transport service provider. For example, if the GMV of thetransport service provider has reached a target value set by thetransport service provider, then the one route may be selected from theone or more routes such that the routing of the vehicle 106 a along theselected route will have minimal impact on the GMV of the transportservice provider.

In an embodiment, the routing engine 208 determines a cost sensitivityof the passenger based on the historical travel data. The routing engine208 determines a probability of performing the vehicle booking for theride for a cost range by the passenger, and is given by equation (7):

Pt(booking)=(ΣBookings_(ratecard))/(ΣIntents_(ratecard))  (7)

wherein,Pt(booking) is the probability of booking, and is a ratio of a totalnumber of bookings given a rate card (e.g., price per kilometer) to atotal number of intents at a time “t” and the given rate card.

Further, the routing engine 208 determines a time sensitivity of thepassenger with respect to at least one of the pick-up time or thedrop-off time. In one example, the time sensitivity towards ETA (i.e.,the pick-up time or a vehicle arrival time to pick-up the passenger) isdetermined i.e., given the same rate card, the routing engine 208determines a probability of conversion of the booking based on the ETA,and is given by equation (8):

Pt(booking)=(ΣBookings_(ETA))/(ΣIntents_(ETA))  (8)

wherein,Pt(booking) is the probability of booking, and is a ratio of a totalnumber of bookings given the ETA to pick-up to a total number of intentsat a time “t” and the given ETA.

In an embodiment, when a booking distribution is the same for all ratecard values (i.e., a number of bookings by the passenger remains thesame irrespective of variations in the rate card values over a period oftime), then the routing engine 208 may determine that the passenger isnot sensitive towards the travel cost. However, in an event of skewedbooking distribution towards low rate card values, the routing engine208 may determine that the passenger is sensitive towards the travelcost. Similarly, when the booking distribution is the same for all ETAs,then the routing engine 208 may determine that the passenger is notsensitive towards the travel time. However, in an event of skewedbooking distribution towards small ETAs, the routing engine 208 maydetermine that the passenger is sensitive towards the travel time.Further, the routing engine 208 may select the one route from the one ormore routes based on the travel time or cost of the one or more routesconsidering at least one of the time or cost sensitivity of thepassenger. For example, when the passenger is time sensitive, then therouting engine 208 selects the route from the one or more routes that isfastest in the current predicted traffic conditions. Similarly, when thepassenger is cost sensitive, then the routing engine 208 selects theroute from the one or more routes that generates low travel cost for thepassenger.

At step 614, the vehicle 106 a is routed along the selected route. Therouting engine 208 routes the vehicle 106 a along the selected routesuch that the security parameters of the passenger, the travelpreferences of at least one of the passenger or the transport serviceprovider, the travel time or cost of the one or more routes, the ETA atthe source location for the pick-up, the ETA at the destination locationfor the drop-off, or a combination thereof are optimized.

Referring now to FIG. 7, a block diagram that illustrates a computersystem 700 for predicting the traffic conditions of the geographicalarea, and routing the vehicle 106 a based on the predicted trafficconditions is shown, in accordance with an embodiment of the presentinvention. An embodiment of present invention, or portions thereof, maybe implemented as computer readable code on the computer system 700. Inone example, the application server 110 and the database server 112 ofFIG. 1 may be implemented in the computer system 700 using hardware,software, firmware, non-transitory computer readable media havinginstructions stored thereon, or a combination thereof and may beimplemented in one or more computer systems or other processing systems.

The computer system 700 includes a processor 702 that may be a specialpurpose or a general purpose processing device. The processor 702 may bea single processor, multiple processors, or combinations thereof. Theprocessor 702 may have one or more processor “cores.” Further, theprocessor 702 may be connected to a communication infrastructure 704,such as a bus, a bridge, a message queue, the communication network 114,multi-core message-passing scheme, and the like. In one example, theprocessor 202, the graph generator 204, the traffic predictor 206, andthe routing engine 208 of FIG. 2 may be implemented by means of theprocessor 702, and performs the one or more operations of the processor202, the graph generator 204, the traffic predictor 206, and the routingengine 208 for predicting the traffic conditions of the geographicalarea, and routing the vehicle 106 a based on the predicted trafficconditions. The computer system 700 further includes a main memory 706and a secondary memory 708. Examples of the main memory 706 may includerandom access memory (RAM), read-only memory (ROM), and the like. Thesecondary memory 708 may include a hard disk drive or a removablestorage drive (not shown), such as a floppy disk drive, a magnetic tapedrive, a compact disc, an optical disk drive, a flash memory, and thelike. Further, the removable storage drive may read from and/or write toa removable storage device in a manner known in the art. In anembodiment, the removable storage unit may be a non-transitory computerreadable recording media.

The computer system 700 further includes an input/output (I/O) port 710and a communication interface 712. The I/O port 710 includes variousinput and output devices that are configured to communicate with theprocessor 702. Examples of the input devices may include a keyboard, amouse, a joystick, a touchscreen, a microphone, and the like. Examplesof the output devices may include a display screen, a speaker,headphones, and the like. The communication interface 712 may beconfigured to allow data to be transferred between the computer system700 and various devices that are communicatively coupled to the computersystem 700. Examples of the communication interface 712 may include amodem, a network interface, i.e., an Ethernet card, a communicationsport, and the like. Data transferred via the communication interface 712may be signals, such as electronic, electromagnetic, optical, or othersignals as will be apparent to a person skilled in the art. The signalsmay travel via a communications channel, such as the communicationnetwork 114 which may be configured to transmit the signals to thevarious devices that are communicatively coupled to the computer system700. Examples of the communication channel may include, but are notlimited to, cable, fiber optics, a phone line, a cellular phone link, aradio frequency link, a wireless link, and the like.

Computer program medium and computer usable medium may refer tomemories, such as the main memory 706 and the secondary memory 708,which may be a semiconductor memory such as dynamic RAMs. These computerprogram mediums may provide data that enables the computer system 700 toimplement the methods illustrated in FIGS. 4, 5, and 6. In anembodiment, the present invention is implemented using a computerimplemented application. The computer implemented application may bestored in a computer program product and loaded into the computer system700 using the removable storage drive or the hard disc drive in thesecondary memory 708, the I/O port 710, or the communication interface712.

A person having ordinary skills in the art will appreciate thatembodiments of the disclosed subject matter can be practiced withvarious computer system configurations, including multi-coremultiprocessor systems, minicomputers, mainframe computers, computerslinked or clustered with distributed functions, as well as pervasive orminiature computers that may be embedded into virtually any device. Forinstance, at least one processor, such as the processor 702, and amemory, such as the main memory 706 and the secondary memory 708,implement the above described embodiments. Further, the operations maybe described as a sequential process, however some of the operations mayin fact be performed in parallel, concurrently, and/or in a distributedenvironment, and with program code stored locally or remotely for accessby single or multiprocessor machines. In addition, in some embodiments,the order of operations may be rearranged without departing from thespirit of the disclosed subject matter.

Techniques consistent with the present invention provide, among otherfeatures, systems and methods for predicting the traffic conditions ofthe geographical area and routing the vehicles based on the predictedtraffic conditions. Unless stated otherwise, terms such as “first” and“second” are used to arbitrarily distinguish between the elements suchterms describe. Thus, these terms are not necessarily intended toindicate temporal or other prioritization of such elements. Whilevarious exemplary embodiments of the disclosed system and method havebeen described above it should be understood that they have beenpresented for purposes of example only, not limitations. It is notexhaustive and does not limit the invention to the precise formdisclosed. Modifications and variations are possible in light of theabove teachings or may be acquired from practicing of the invention,without departing from the breadth or scope.

What is claimed is:
 1. A method for predicting traffic conditions of ageographical area, the method comprising: receiving, by a server,position information from one or more devices of a plurality of firstvehicles that are traversing between a plurality of road segments of aroad network including at least first and second road segments, whereina traffic signal is associated with at least one of the first and secondroad segments; for each of the plurality of first vehicles: locating, bythe server, the received position information on a directed graph of theroad network; and determining, by the server, first and second timesbased on the located position information on the directed graph, whereinthe first time corresponds to a first entry time of each of theplurality of first vehicles for entering into the first road segment,and the second time corresponds to a second entry time of each of theplurality of first vehicles for entering into the second road segmentfrom the first road segment; determining, by the server, a traffic timeof the first road segment based on an average of time differences of thefirst and second times of each of the plurality of first vehicles; andpredicting, by the server, the traffic conditions of the road networkbased on the determined traffic time of each of the plurality of roadsegments.
 2. The method of claim 1, wherein the directed graph includesa plurality of nodes including at least first and second nodes thatindicate at least the first and second road segments, respectively, andone or more directed edges including at least one directed edge thatindicates a transition between the first and second nodes.
 3. The methodof claim 1, further comprising: receiving, by the server, a bookingrequest from a passenger device of a passenger to travel between asource location and a destination location; and determining, by theserver, based on the booking request, a travel time for a second vehicleto travel along one or more routes of the road network including theplurality of road segments based on the predicted traffic conditions,wherein the one or more routes are associated with the source locationand the destination location of the booking request.
 4. The method ofclaim 3, further comprising routing, by the server, the second vehiclealong one of the one or more routes based on the determined travel timeand a travel preference of at least one of the passenger or a transportservice provider providing the second vehicle for the travel to thepassenger.
 5. The method of claim 4, further comprising determining, bythe server, a travel cost for the second vehicle to travel along the oneor more routes of the road network based on at least one of thedetermined travel time or the predicted traffic conditions, wherein thesecond vehicle is routed along the one of the one or more routes furtherbased on the determined travel cost.
 6. The method of claim 4, whereinthe travel preference is associated with at least one of time or costconstraints of the travel, wherein the travel preference of thepassenger is determined based on at least one of historical travel dataof the passenger or real-time travel data received from the passengerdevice before routing the second vehicle, and wherein the travelpreference of the transport service provider is determined based on asetting associated with at least one of a route preference, a passengervalue, or a gross merchandise value (GMV).
 7. A method for predictingtraffic conditions of a geographical area, the method comprising:receiving, by a server, position information from one or more devices ofa plurality of first vehicles that are traversing between a plurality ofroad segments of a road network including at least first and second roadsegments, wherein a traffic signal is associated with at least one ofthe first and second road segments; for each of the plurality of firstvehicles: locating, by the server, the received position information ona directed graph of the road network; and determining, by the server,first and second times based on the located position information on thedirected graph, wherein the first time corresponds to a first entry timeof each of the plurality of first vehicles for entering into the firstroad segment, and the second time corresponds to a second entry time ofeach of the plurality of first vehicles for entering into the secondroad segment from the first road segment; and predicting, by the server,the traffic conditions of the road network based on the first and secondtimes of each of the plurality of first vehicles.
 8. The method of claim7, wherein the directed graph includes a plurality of nodes including atleast first and second nodes that indicate at least the first and secondroad segments, respectively, and one or more directed edges including atleast one directed edge that indicates a transition between the firstand second nodes.
 9. The method of claim 7, further comprising:receiving, by the server, a booking request from a passenger device of apassenger to travel between a source location and a destinationlocation; and determining, by the server based on the booking request, atravel time for a second vehicle to travel along one or more routes ofthe road network including the plurality of road segments based on thepredicted traffic conditions, wherein the one or more routes areassociated with the source location and the destination location of thebooking request.
 10. The method of claim 9, further comprising routing,by the server, the second vehicle along one of the one or more routesbased on the determined travel time and a travel preference of at leastone of the passenger or a transport service provider providing thesecond vehicle for the travel to the passenger.
 11. The method of claim10, further comprising determining, by the server, a travel cost for thesecond vehicle to travel along the one or more routes of the roadnetwork based on at least one of the determined travel time or thepredicted traffic conditions, wherein the second vehicle is routed alongthe one of the one or more routes further based on the determined travelcost.
 12. The method of claim 11, further comprising rendering, by theserver, a user interface on the passenger device to present at least oneof the determined travel time or the determined travel cost of the oneor more routes to the passenger.
 13. The method of claim 10, wherein thetravel preference is associated with at least one of time or costconstraints of the travel, wherein the travel preference of thepassenger is determined based on at least one of historical travel dataof the passenger or real-time travel data received from the passengerdevice before routing the second vehicle, and wherein the travelpreference of the transport service provider is determined based on asetting associated with at least one of a route preference, a passengervalue, or a gross merchandise value (GMV).
 14. A system to generatetraffic conditions of a geographical area, the system comprising:circuitry configured to: receive position information from one or moredevices of a plurality of first vehicles that traverses between aplurality of road segments of a road network that includes at leastfirst and second road segments, wherein a traffic signal is associatedwith at least one of the first and second road segments; for each of theplurality of first vehicles: locate the received position information ona directed graph of the road network; and determine first and secondtimes based on the located position information on the directed graph,wherein the first time corresponds to a first entry time of each of theplurality of first vehicles to enter into the first road segment, andthe second time corresponds to a second entry time of each of theplurality of first vehicles to enter into the second road segment fromthe first road segment; and generate the traffic conditions of the roadnetwork based on the first and second times of each of the plurality offirst vehicles.
 15. The system of claim 14, wherein the directed graphincludes a plurality of nodes that includes at least first and secondnodes that indicate at least the first and second road segments,respectively, and one or more directed edges that include at least onedirected edge that indicates a transition between the first and secondnodes.
 16. The system of claim 14, wherein the circuitry is furtherconfigured to: receive a booking request from a passenger device of apassenger to travel between a source location and a destinationlocation; and determine, based on the booking request, a travel time fora second vehicle to travel along one or more routes of the road networkthat includes the plurality of road segments based on the generatedtraffic conditions, wherein the one or more routes are associated withthe source location and the destination location of the booking request.17. The system of claim 16, wherein the circuitry is further configuredto route, the second vehicle along one of the one or more routes basedon the determined travel time and a travel preference of at least one ofthe passenger or a transport service provider that provides the secondvehicle for the travel to the passenger.
 18. The system of claim 17,wherein the circuitry is further configured to determine a travel costfor the second vehicle to travel along the one or more routes of theroad network based on at least one of the determined travel time or thegenerated traffic conditions, wherein the second vehicle is routed alongthe one of the one or more routes further based on the determined travelcost.
 19. The system of claim 18, wherein the circuitry is furtherconfigured to render a user interface on the passenger device to presentat least one of the determined travel time or the determined travel costof the one or more routes to the passenger.
 20. The system of claim 17,wherein the travel preference is associated with at least one of time orcost constraints of the travel, wherein the travel preference of thepassenger is determined based on at least one of historical travel dataof the passenger or real-time travel data received from the passengerdevice before the second vehicle is routed, and wherein the travelpreference of the transport service provider is determined based on asetting associated with at least one of a route preference, a passengervalue, or a gross merchandise value (GMV).